home *** CD-ROM | disk | FTP | other *** search
/ Programmer Plus 2007 / Programmer-Plus-2007.iso / Programming / Compilers / digital marsC compier / dm / include / Macros.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-03-16  |  944 b   |  44 lines

  1. /* Copyright (C) 1986-2001 by Digital Mars. $Revision: 1.1.1.1 $ */
  2. #if __SC__ || __RCC__
  3. #pragma once
  4. #endif
  5.  
  6. #ifndef __MACROS_H
  7. #define __MACROS_H 1
  8.  
  9. extern void _far _pascal Dos3Call(void);
  10.  
  11. #define LPTR M_I86CM || M_I86LM || M_I86VM
  12. #define SPTR M_I86SM || M_I86MM
  13.  
  14. #ifdef _WINDOWS
  15. #define bdos    __asm call Dos3Call
  16. #else
  17. #define bdos    __asm int 21h
  18. #endif
  19.  
  20. #define bdos1(fun)    __asm mov ah,fun bdos
  21.  
  22. #if __INTSIZE == 4
  23. #define errno_set   __asm mov errno, EAX
  24. #else
  25. #define errno_set   __asm mov errno, AX
  26. #endif
  27.  
  28. #define errno_set1(value)    __asm mov errno, value
  29.  
  30. #define clr1(reg1)  __asm xor reg1, reg1
  31.  
  32. #define clr2( reg1, reg2 ) __asm xor reg1,reg1    clr1(reg2)
  33.  
  34. #define clr3( reg1, reg2, reg3) __asm xor reg1, reg1 clr2( reg2, reg3 )
  35.  
  36. #define _ifs(arg1,cond,arg2,lbl) __asm cmp arg1,arg2 __asm j##cond short lbl
  37.  
  38. #if __I386>=3 || (LPTR)
  39. #define SIZEPTR 4
  40. #else
  41. #define SIZEPTR 2
  42. #endif
  43. #endif
  44.